from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# Edge WebDriver路径
edge_driver_path = r"C:/Program Files (x86)/Microsoft/edgedriver_win64/msedgedriver.exe"

# 配置Edge WebDriver
service = Service(edge_driver_path)
driver = webdriver.Edge(service=service)

# 打开目标页面
url = "https://fjshare.chinaedu.net/course/courseWare.do?orgCode=010376&courseCode=02662&userId=5B4EB8F47886AABF773AB1536B976A3C&timestamp=1741320910557&sign=BFE85D9F9F9EAF53C07FEF0B4CC991FC&connectionPlayKey=null&teachingVersion=02662&protocolType=null&centerId=4b9931f3274b493c81961a531c0d420a"
driver.get(url)

# 提示用户完成登录操作
print("请在浏览器中完成登录操作。")
user_input = input("登录完成后，请输入 'yes' 继续运行程序，输入 'no' 退出程序： ").strip().lower()

if user_input != 'yes':
    print("程序已退出。")
    driver.quit()
    exit()
else:
    print("程序开始运行。")

    try:
        while True:
            # 等待视频元素加载完成
            video_element = WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.ID, "videoFrame_video_html5_api"))  # 使用视频的ID进行定位
            )
            # 检测视频是否停止播放
            while True:
                time.sleep(1)  # 每秒检查一次
                if video_element.get_attribute("ended") == "true":
                    print("视频已停止播放，点击下一页按钮")
                    break
                # 定位视频列表
                video_list = WebDriverWait(driver, 20).until(
                    EC.presence_of_all_elements_located((By.CSS_SELECTOR, "a[title]"))
                )
                print(f"找到 {len(video_list)} 个视频")

                # 播放视频并自动切换到下一个
                for index, video_item in enumerate(video_list):
                    print(f"正在播放第 {index + 1} 个视频：{video_item.get_attribute('title')}")
                    video_item.click()  # 点击视频列表中的视频
                    time.sleep(2)  # 等待视频加载

                    # 检测视频是否停止播放
                    while True:
                        time.sleep(1)  # 每秒检查一次
                        if video_player.get_attribute("ended") == "true":
                            print("视频已停止播放，点击下一页按钮")
                            break

                    print("视频播放完成，自动切换到下一个视频...")

                print("所有视频播放完成！")
    except Exception as e:
        print(f"发生错误：{e}")
    finally:
        driver.quit()  # 关闭浏览器